// Variáveis utilizada no dialog ui
var dialog_selecione_registro, dialog_confirma_exclusao;

/**
 * Exibe alerta
 * @param  string erro, sucesso, atencao, info
 * @param  string
 * @return void exibe a mensagem de erro
 */
function alerta(status, mensagem)
{
	var alerta;

	// Limpa o alerta caso tenha exibido um alerta antes
	$('#exibe_alerta').empty();

	// Qual o status do alerta
	switch (status)
	{
		case 'erro':
			alerta =
			'<div class="alert alert-error">'
			+	'<strong>Erro ! </strong>'
			+	mensagem
			+'</div>'
		break
	}

	// Exibe o alerta
	$('#exibe_alerta').html(alerta);
}

function add_erro_validacao(campos)
{
	for (i in campos)
	{
		$('.validate[name="'+campos[i]+'"]').addClass('erro_validacao');
		console.debug(campos[i]);
	}
}

/**
 * Carrega a cidade de acordo com o estado selecionado
 * @param  string 
 * @param  string nome do input que vai receber as cidades
 * @return void
 */
function get_cidade(uf, name_select)
{
	if (uf != '')
	{
		$('select[name="'+name_select+'"]').load_mini('show');

		$.ajax({
			type : 'post',
			url  : site_url + 'cidade/aget_cidade',
			error : function(erro) {
				$('select[name="'+name_select+'"]').load_mini('hide');

				alert('Erro: ' + erro.status + '. ' + erro.statusText);
			},
			data : {
				uf : uf
			},
			success : function(ret) {

				$('select[name="'+name_select+'"]').load_mini('hide');

				if (ret == '1')
				{
					// Erro
					alert('Erro ao buscar cidades');
				}
				else
				{
					$('select[name="'+name_select+'"]').html(ret);
				}
			}
		})
	}
	else
	{
		$('select[name="'+name_select+'"]').html('<option value="">Selecione um estado</option>');
	}
}

function get_entidade(credor, nome_select)
{	
	console.debug($('select[name="'+nome_select+'"]'));
	if ($(credor).val() != '')
	{
		$('select[name="'+nome_select+'"]').load_mini('show');

		$.ajax({
			type     : 'post',
			url      : site_url + 'entidade/aget_entidade',
			dataType : 'json',
			error : function(erro) {
				$('select[name="'+nome_select+'"]').load_mini('hide');

				alert('Erro: ' + erro.status + '. ' + erro.statusText); 
			},
			data : {
				credor_id : $(credor).val()
			},
			success : function(ret) {

				console.debug(ret);

				$('select[name="'+nome_select+'"]').load_mini('hide');
				$('select[name="'+nome_select+'"]').html(ret.option_entidade);
			}	
		})
	}
	else
	{	
		$('select[name="'+nome_select+'"]').html('<option value="">Selecione um credor</option>');
	}
}

/**
 * Marca todos checkbox
 * @param  objeto
 */
function marcar_todos(check)
{	
	if (check.checked == true)
	{
		// console.debug($(check).offsetParent().find('tbody input').attr('checked', true));
		$(check).offsetParent().find('tbody input').attr('checked', true);
	}
	else
	{
		$(check).offsetParent().find('tbody input').attr('checked', false);
	}
	
}

function marcar_especificado(check, marcar_estes)
{
	if (check.checked === true)
	{
		$('input[name="'+marcar_estes+'"]').attr('checked', true);
	}
	else
	{
		$('input[name="'+marcar_estes+'"]').attr('checked', false);
	}
}

function set_box_status(msg, class_status, funcao, fixar)
{
	var event_on_close = '';
	if (typeof(funcao) !== 'undefined') 
	{	
		event_on_close = funcao;
	}

	var layout_status = '<div class="alert '+class_status+'">'
	+	'<button type="button" class="close" data-dismiss="alert">&times;</button>'
	+	msg
	+'</div>';

	// Elemento com id definido em template/principal.php
	$('#box_notificacao_conteudo').html(layout_status);
	// Se não for fixar o aviso
	if (typeof(fixar) === 'undefined')
	{
		// setTimeout(function() {
		// 	$('#box_notificacao_conteudo').empty();
		// }, 3000);
	}
}

function reseta_form(id_form)
{
	$(id_form)[0].reset();
}

function load_status(acao)
{
	if (acao == 'hide')
	{	
		$('#load_status').hide();
		$('body').css('cursor', 'default');
	}
	else
	{
		$('#load_status').show();
		$('body').css('cursor', 'wait');
	}
}

/**
 * Carrega uma janela modal com a frase ""
 * @return {[type]} [description]
 */
function dialog_selecione_reg()
{
	dialog_selecione_registro.dialog('open');
}

/**
 * Quando o usuário for excluir um registro exibe um modal pra o usuário confirmar a exclusão
 * @param  {int} quantidade_para_excluir Quantidade de registro que será excluido
 * @param  {função} funcao                  função que será executada se o usuário escolher a opção para continuar "sim"
 * @return exibe o modal para o usuário confirmar a exclusão
 */
function confirma_exclusao(quantidade_para_excluir, funcao, parametro)
{
	var msg;

	if (quantidade_para_excluir == 1) 
	{
		msg = quantidade_para_excluir + ' registro será excluído. Deseja continuar?';
	}
	else
	{
		msg = quantidade_para_excluir + ' registros serão excluídos. Deseja continuar?';
	}

	var dialog = '<div id="dialog-confirma-exclusao" title="Atenção">'
		+'<div class="alert">'
			+'<i class="fugue-exclamation"></i><strong>'+msg+'</strong>'
		+'</div>'
	+'</div>';

	$('#show_dialog').html(dialog);

	// Dialog de confirmação de exclusao
	dialog_confirma_exclusao = $('#dialog-confirma-exclusao').dialog({
		resizable: false,
		autoOpen : true,
		height   : 'auto', 
		width    : 440,
		modal    : true,
		buttons : {
			"Sim" : function() {
				funcao(parametro);
				$( this ).dialog( 'close' );
			},
			"Não" : function() {
				$( this ).dialog( 'close' );
			}
		}
	});
}

function dialog_erro(mensagem)
{
	var dialog = '<div id="dialog_erro_exclusao" title="Atenção">'
		+'<div class="alert alert-error">'
			+'<i class="fugue-cross-circle"></i><strong>'+mensagem+'</strong>'
		+'</div>'
	+'</div>';

	$('#show_dialog').html(dialog);

	$('#dialog_erro_exclusao').dialog({
		resizable: false,
		autoOpen : true,
		height   : 'auto', 
		width    : 440,
		modal    : true,
		buttons : {
			"OK" : function() {
				$( this ).dialog( 'close' );
			}
		}
	});	 	
}

function dialog_sucesso(mensagem)
{
	var dialog = '<div id="dialog_sucesso_exclusao" title="Successo">'
		+'<div class="alert alert-success">'
			+'<i class="fugue-tick-circle"></i><strong>'+mensagem+'</strong>'
		+'</div>'
	+'</div>';

	$('#show_dialog').html(dialog);

	$('#dialog_sucesso_exclusao').dialog({
		resizable: false,
		autoOpen : true,
		height   : 'auto', 
		width    : 440,
		modal    : true,
		buttons : {
			"OK" : function() {
				$( this ).dialog( 'close' );
			}
		}
	});
}

/*=============== JQUERY ===============*/
(function( $ ) {

	$.fn.load_mini = function(action)
	{
		if (action == 'show')
		{
			this.after('<div class="load_mini"></div>');
		}
		else if (action == 'hide')
		{
			$('div.load_mini').remove();
		}
	}

})( jQuery );

(function( $ ) {

	$.fn.exibe_alerta = function(opt) {

		if (opt.acao == 'show')
		{
			switch (opt.status) {
				case 'erro':
					this.html('<div class="alert alert-error">'+opt.msg+'</div>')
					break;
			}
		}	
		
		if (opt.acao == 'hide')
		{
			this.empty();
		}

	};

})( jQuery );

// Carregando depois do DOM
$(document).ready(function() {

	dialog_selecione_registro = $('#dialog-selecione-registro').dialog({
		resizable : false,
        autoOpen  : false,
        height    : 'auto',
        width     : 440,
        modal     : true,
        buttons : {
            "OK" : function() {
                $( this ).dialog( 'close' );
            }
        }
	});

	

});